
local attr_rate = {}
for k,v in pairs(load_excel('基础设定.xlsx','属性价值')) do
    local name = k
    attr_rate[name] = v.rate
end

--local main_attr = (' - |cffffff00主要属性|r|n - 每点提升|cff00ff00%s|r基础攻击|n - 每点提升|cff00ff00%0.f|r生命上限'):format(attr_rate['基础攻击'],attr_rate['生命上限'])
local main_attr = ''
local attr_tips = {}
local attr_list = {}
local sw_sx = {
    {'力量','生命上限','生命恢复','基础攻击'},
    {'敏捷','物理固伤','基础攻击'},
    {'智力','魔法固伤','基础攻击'},
}
local sw_sz = {
    {10,0.5,0.3},
    {1,0.5,},
    {1.2,0.3},
}

for i,data in ipairs(sw_sx) do
    local name = data[1]
    local sz = sw_sz[i]
    local tips = ''
    local info = {}
    for a=2,#data do
        local key = data[a]
        local num = sz[a-1]
        tips = ('%s - |cff999999每点提升|r|cff00ff00%s|r|cff999999%s|r|n'):format(tips,num,key)
        table.insert(info,key)
    end
    attr_list[name] = info
    attr_tips[name] = tips
end

--三维处理
ac.game:event '英雄-三维变动'(function(_,hero,name,num)
    if num==0 then
        return
    end
    if hero.main_attribute==name then
        --hero:add('基础攻击',attr_rate['基础攻击']*num)
        --hero:add('生命上限',attr_rate['生命上限']*num)
    end
    if name=='力量' then
        hero:add('生命上限',10*num)
        hero:add('生命恢复',0.5*num)
        hero:add('基础攻击',0.3*num)
    end
    if name=='敏捷' then
        hero:add('物理固伤',1*num)
        hero:add('基础攻击',0.5*num)
    end
    if name=='智力' then
        hero:add('魔法固伤',1.2*num)
        hero:add('基础攻击',0.3*num)
    end
end)

--[英雄升级]
ac.game:event '单位-英雄升级'(function(_,hero)
    local player = hero.owner
    if hero.level==hero.max_level then
        return
    end
    if hero.level%10==0 then
        hero:set_data('待转生次数',hero:get_data('待转生次数',0) + 1)
    end
    local key1 = '累计力量成长'
    local key2 = '累计敏捷成长'
    local key3 = '累计智力成长'
    hero:set_data(key1,hero:get_data(key1,0) + hero:get('升级力量'))
    hero:set_data(key2,hero:get_data(key2,0) + hero:get('升级敏捷'))
    hero:set_data(key3,hero:get_data(key3,0) + hero:get('升级智力'))
    hero:add('基础力量',hero:get('升级力量'))
    hero:add('基础敏捷',hero:get('升级敏捷'))
    hero:add('基础智力',hero:get('升级智力'))
end)

--[成长补正]
ac.game:event '单位-成长补正'(function(_,hero,max)
    local level = hero.level - 1
    local key1 = '累计力量成长'
    local key2 = '累计敏捷成长'
    local key3 = '累计智力成长'
    local ex4 = math.min(hero:get('力量成长')*level - hero:get_data(key1,0),max or 999999)
    local ex5 = math.min(hero:get('敏捷成长')*level - hero:get_data(key2,0),max or 999999)
    local ex6 = math.min(hero:get('智力成长')*level - hero:get_data(key3,0),max or 999999)
    
    hero:set_data(key1,hero:get_data(key1,0) + ex4)
    hero:set_data(key2,hero:get_data(key2,0) + ex5)
    hero:set_data(key3,hero:get_data(key3,0) + ex6)
    
    hero:add('基础力量',ex4)
    hero:add('基础敏捷',ex5)
    hero:add('基础智力',ex6)
end)



ac.game:event '游戏-注册三维文本' (function(_, button)
    button.main_tip = main_attr
    button.str_tip = attr_tips['力量']
    button.agi_tip = attr_tips['敏捷']
    button.int_tip = attr_tips['智力']
end)
